package org.nnxy.foodboot.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nnxy.foodboot.entity.Recipe;
import org.nnxy.foodboot.entity.UserCollection;

/**
 * 用户收藏服务接口
 */
public interface UserCollectionService extends IService<UserCollection> {
    
    /**
     * 添加收藏
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @param notes 收藏备注
     * @return 是否成功
     */
    boolean addCollection(Long userId, Long recipeId, String notes);
    
    /**
     * 取消收藏
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @return 是否成功
     */
    boolean removeCollection(Long userId, Long recipeId);
    
    /**
     * 分页查询用户收藏
     * @param page 分页参数
     * @param userId 用户ID
     * @return 分页结果
     */
    IPage<Recipe> pageUserCollections(Page<Recipe> page, Long userId);
    
    /**
     * 检查用户是否已收藏
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @return 是否已收藏
     */
    boolean hasCollected(Long userId, Long recipeId);
} 